package com.xiaoshuidi.cloud.module.iot.dal.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@TableName("tb_device")
public class TbDeviceDo extends TenantBaseDO {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * API账号编号
     */
    @TableField(value = "api_no")
    private String apiNo;

    /**
     * 设备编号
     */
    @TableField(value = "device_no")
    private String deviceNo;

    /**
     * 第三方设备编号
     */
    @TableField(value = "device_third_no")
    private String deviceThirdNo;

    /**
     * 设备名称
     */
    @TableField(value = "device_name")
    private String deviceName;

    /**
     * 设备类型:ammeter电表,hot_watermeter热水表,cold_watermeter冷水表,doorlock门锁,smokesensor烟感，pass人脸门禁机 sense人证核验一体机
     */
    @TableField(value = "device_type")
    private String deviceType;


    /**
     * 设备型号
     */
    @TableField(value = "device_model")
    private String deviceModel;


    /**
     * 工作状态:1在线0离线
     */
    @TableField(value = "online_status")
    private Integer onlineStatus;

    /**
     * 通电状态:1通电0断电
     */
    @TableField(value = "power_status")
    private Integer powerStatus;

    /**
     * 电池电量百分比
     */
    @TableField(value = "battery_level")
    private Double batteryLevel;

    /**
     * 品牌编号
     */
    @TableField(value = "brand_no")
    private String brandNo;

    /**
     * 品牌名称
     */
    @TableField(value = "brand_name")
    private String brandName;

    /**
     * 第三方数据上报时间
     */
    @TableField(value = "report_time")
    private LocalDateTime reportTime;

    /**
     * 版本控制
     */
    @TableField(value = "version")
    private Integer version;

    /**
     * 记录数据状态 1正常 0无效
     */
    private Integer status;


    /**
     * 当前读数
     */
    @TableField(value = "current_reading")
    private Double currentReading;

    //分摊读数
    @TableField(value = "share_current_reading")
    private Double shareCurrentReading;

    /**
     * 第三方网关或其他设备编号
     */
    @TableField(value = "third_gate_no")
    private String thirdGateNo;

    /**
     * 当前尖读数
     */
    @TableField(value = "spike_current_reading")
    private Double spikeCurrentReading;
    /**
     * 第三方数据上报时间
     */
    @TableField(value = "spike_report_time")
    private LocalDateTime spikeReportTime;

    /**
     * 当前峰读数
     */
    @TableField(value = "peak_current_reading")
    private Double peakCurrentReading;
    /**
     * 第三方数据上报时间
     */
    @TableField(value = "peak_report_time")
    private LocalDateTime peakReportTime;

    /**
     * 当前平读数
     */
    @TableField(value = "plain_current_reading")
    private Double plainCurrentReading;
    /**
     * 第三方数据上报时间
     */
    @TableField(value = "plain_report_time")
    private LocalDateTime plainReportTime;

    /**
     * 当前谷读数
     */
    @TableField(value = "valley_current_reading")
    private Double valleyCurrentReading;
    /**
     * 第三方数据上报时间
     */
    @TableField(value = "valley_report_time")
    private LocalDateTime valleyReportTime;
}